package internal

import (
	"Alpaca/gate"
	"Alpaca/log"
	"reflect"
	"server/msg"
)

// // 业务就简单实现一个用户道具拥有数的请求
// func ItemQuery(args []interface{}) interface{} {
// 	if len(args) < 2 {
// 		return fmt.Errorf("ItemQuery too few parameters")
// 	}

// 	a := args[0].(gate.Agent)
// 	item := args[1].(string)
// 	if a.UserData().(int) != 37 {
// 		return fmt.Errorf("no such userdata")
// 	}

// 	if item != "banana" {
// 		return fmt.Errorf("no such item")
// 	}

// 	return 23
// }

func init() {
	handler(&msg.Hello{}, handleHello)
}

func handler(m interface{}, h interface{}) {
	skeleton.RegisterChanRPC(reflect.TypeOf(m), h)
}

func handleHello(args []interface{}) {
	m := args[0].(*msg.Hello)
	a := args[1].(gate.Agent)

	if m.Uid != 1 {
		log.Debug("no such user uid is %v", m.Uid)
		return
	}
	log.Debug("hello %v", m.Name)
	a.WriteMsg(&msg.Hello{
		Name: "Client",
	})
}
